基于51单片机数码管的动态显示0~F 您所在的位置:网站首页 数码管动态显示设计中未选端由a bcd的引脚组成 基于51单片机数码管的动态显示0~F

基于51单片机数码管的动态显示0~F

2024-07-18 03:33| 来源: 网络整理| 查看: 265

目录

一·数码管的介绍 

二 ·电路原理图的分析

三·源程序代码

一·数码管的介绍 

51单片机数码管是一种常用的输出设备,用于在数字显示方面。它通常用于显示数字以及一些特殊的字符。常见的数码管有共阳极和共阴极两种类型。-共阳极数码管:在这种数码管中,所有的LED的阳极是连接在一起的,而且是端口交替地与地线接通。通过使能各LED的阴极,实现在数码管上显示数字或字符。 -共阴极数码管:这种数码管中,LED的阴极是连接在一起的,而且是端口交替地接通,通过使能各LED的阳极,在数码管上显示数字或字符。 数码管通常是由7段LED组成,每个LED的排列形状使得可以显示数字0-9和一些字母,常见的字母包括A、b、C、d、E、F等。数码管的输入信号来自于单片机的端口,通过适当的控制,可以实现在数码管上显示需要的数字、字母或符号,如图所示:

二 ·电路原理图的分析

 1. 首先,数码管会连接到芯片的输出端口,以便接收要显示的数据。这些输出端口以相应的方式控制每个数码管的LED。 2. 为了实现数码管的控制,还需要使用电流限制器(通常是电阻)来控制LED的亮度和功耗。每个LED都需要一个电流限制器。 3. 对于常见的七段数码管,每个数码管都有7个LED,对应显示数字0-9和一些字母。 4. 在共阳极数码管中,阳极连接到电源,而单片机的输出端口通过负极(LED的阴极)来控制LED的点亮。 5. 在共阴极数码管中,阴极连接到地,而单片机的输出端口通过正极(LED的阳极)来控制LED的点亮。 总之,通过单片机的输出端口和适当的电流限制器,可以控制数码管的LED的点亮状态,进而实现在数码管上显示所需的数字、字母或符号。

2.1数码管的段选 

通过点亮不同指定序列的数码管实现不同的数字或字母显示。下面给出共阴数码管和共阳数码管的0-F段码数据表。如图所示:

 

2.2数码管位选

数码管的位选是指在多位数码管中选择特定数码管的方法。在多位数码管中,为了控制显示的内容,需要选择哪个数码管处于激活状态,以便控制其LED的点亮或熄灭。 -共阴极数码管:在这种数码管中,所有LED的阴极(负极)均连接在一起,而阳极(正极)可以单独控制。因此,在位选时,通过控制共阴极的开关状态,从而选择并点亮或熄灭单独的数码管。 -共阳极数码管:在这种数码管中,所有LED的阳极(正极)均连接在一起,而阴极(负极)可以单独控制。因此,在位选时,通过控制共阳极的开关状态,从而选择并点亮或熄灭单独的数码管。 位选的概念在使用多位数码管时非常重要,可以通过选择特定的数码管,从而实现在多位数码管中显示所需的数字、字母或符号。 74HC138译码器实现用三个引脚完成对八位数码管的选择。38译码器如图所示:

三八译码器原理为:三位二进制正好可以表示八个数。 

 2.3电路原理图

 

三八译码器原理为:三位二进制正好可以表示八个数。 

 2.3电路原理图

 

动态数码管电路通常包括以下部分: 1. 数码管显示部分:包括多个数码管,每个数码管有7段LED组成,并且每个数码管需要一个对应的电流限制电阻。     2. 驱动芯片:在设计中通常使用译码器或者集成的数码管驱动芯片,这些芯片能够连接到单片机的输出端口,并通过输出数位信号来选通需要显示的数码管。 3. 单片机:单片机的输出端口连接到驱动芯片,以控制数码管的显示内容及数码管的位选,其工作原理可基于单片机输出高低电平以控制LED的点亮或熄灭。 4. 电流限制电阻:在每个数码管的阳极(共阳极数码管)或阴极(共阴极数码管)连接上,需要连接适当的电流限制器,用于保护LED和控制其亮度。 5. 电源:提供所需的电源电压,并且需要注意根据数码管的类型(共阳极或共阴极)选择适当的极性。 通过这些部分的连接和控制,动态数码管能够实现在多个数码管中依次显示所需的数字、字母或符号,以达到动态显示的效果。  

三·源程序代码

数码管动态显示0~F的代码如下:  

#include #define uint unsigned int #define uchar unsigned char // 数码管编码 uchar SEG_Code[] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71}; // 毫秒级延时函数 void delay_xms(uint xms); void main(void) { uchar i; P0 = 0x00; // 初始化P0口 P2 = 0xFF; // P2口作为数码管的位选信号,首先置为全高电平 while(1) { P2 = 0x00; // 逐位选中数码管 for(i=0; i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有